package util;

/**
 * 序列化服务 接口
 * @author luozhiwei
 * @version : SerializeService.java,v 0.1 2021年05月13日 10:40
 */
public interface SerializeService {

    /**
     * 获取序列化方式
     *
     * @return 响应结果
     */
    String getSerialization();

    /**
     * 序列化为字节数组
     *
     * @param target 目标对象
     * @return 字节数组
     */
    <T> byte[] serializeToBytes(T target);

    /**
     * 通过字节数组反序列化为对象
     *
     * @param bytes       字节数组
     * @param targetClass 目标对象的类对象
     * @param <T>         目标对象的泛型
     * @return 目标对象的实际结果
     */
    <T> T deserializeWithBytes(byte[] bytes, Class<T> targetClass);

}